Logistic Regression

Machine Learning - পাইথন কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence with Python) - Supervised Learning মডেল
325

লজিস্টিক রিগ্রেশন (Logistic Regression) একটি সাধারণ এবং জনপ্রিয় মেশিন লার্নিং অ্যালগরিদম যা প্রধানত ক্লাসিফিকেশন সমস্যার জন্য ব্যবহৃত হয়। এটি একটি সুপারভাইজড লার্নিং মেথড, যেখানে আউটপুট একটি নির্দিষ্ট শ্রেণিতে বিভক্ত থাকে (যেমন ০ বা ১, সত্য বা মিথ্যা, ধনী বা দরিদ্র)।

লজিস্টিক রিগ্রেশন মূলত রিগ্রেশন অ্যালগরিদম হিসেবে নামকরণ হলেও, এটি আসলে ক্লাসিফিকেশন সমস্যা সমাধান করে। এটি আউটপুট হিসেবে প্রোবেবিলিটি প্রদান করে এবং একটি থ্রেশহোল্ড (সাধারণত ০.৫) ব্যবহার করে ক্লাস নির্ধারণ করে।


লজিস্টিক রিগ্রেশন এর মূল ধারণা

লজিস্টিক রিগ্রেশন একটি সিগময়েড (Sigmoid) ফাংশন ব্যবহার করে আউটপুট প্রেডিক্ট করে। সিগময়েড ফাংশন (যার আরেকটি নাম লজিস্টিক ফাংশন) একটি S আকারের কেলভিনকারি কার্ভ তৈরি করে, যা মান ০ এবং ১ এর মধ্যে সীমাবদ্ধ থাকে। এটি প্রোবেবিলিটি প্রদান করে এবং সেই প্রোবেবিলিটি দিয়ে কনক্লুসন করা হয়।

সিগময়েড ফাংশনের সমীকরণ:

σ(z)=11+ez\sigma(z) = \frac{1}{1 + e^{-z}}

যেখানে,

  • z=β0+β1X1+β2X2+...+βnXnz = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + ... + \beta_n X_n
  • X1,X2,...,XnX_1, X_2, ..., X_n হলো ইনপুট ফিচার এবং β0,β1,...,βn\beta_0, \beta_1, ..., \beta_n হলো মডেলের প্যারামিটার।

সিগময়েড ফাংশন:

  • আউটপুট σ(z)\sigma(z) ০ থেকে ১ এর মধ্যে থাকে এবং এটি একটি সম্ভাব্যতা মান প্রদান করে।

লজিস্টিক রিগ্রেশন এর কাজের ধাপ:

  1. ইনপুট ডেটা: মডেলটির জন্য একাধিক ফিচার (বিশ্লেষিত ডেটা) গ্রহণ করা হয়।
  2. প্যারামিটার অনুমান: প্রতিটি ইনপুট ফিচারের জন্য প্যারামিটারগুলি (β\beta) অনুমান করা হয়।
  3. সিগময়েড ফাংশন: ইনপুট ডেটার উপর সিগময়েড ফাংশন প্রয়োগ করা হয় এবং আউটপুট প্রোবেবিলিটি নির্ধারণ করা হয়।
  4. থ্রেশহোল্ড নির্ধারণ: প্রোবেবিলিটি ০.৫ এর বেশি হলে ১ এবং ০.৫ এর কম হলে ০ সিদ্ধান্ত নেওয়া হয়।

লজিস্টিক রিগ্রেশন এর ধরন

  1. বাইনরি লজিস্টিক রিগ্রেশন (Binary Logistic Regression):
    • এটি দুটি শ্রেণি বা ক্লাসের মধ্যে সিদ্ধান্ত নেয় (যেমন ০ বা ১, সত্য বা মিথ্যা, উপস্থিত বা অনুপস্থিত)।
  2. মাল্টিনোমিয়াল লজিস্টিক রিগ্রেশন (Multinomial Logistic Regression):
    • এটি একাধিক শ্রেণি বা ক্লাসের মধ্যে সিদ্ধান্ত নেয়। যেমন, তিনটি বা তার বেশি শ্রেণির মধ্যে।
  3. অর্ডিনাল লজিস্টিক রিগ্রেশন (Ordinal Logistic Regression):
    • এটি এমন পরিস্থিতিতে ব্যবহৃত হয় যেখানে শ্রেণিগুলি একটি বিশেষ ধরনের অর্ডারে থাকে (যেমন, ছোট, মাঝারি, বড়)।

লজিস্টিক রিগ্রেশন এর ব্যবহার

  • বাইনরি ক্লাসিফিকেশন: একটি প্রডিকশন ক্লাস (যেমন, রোগী অসুস্থ কিনা, ইমেইল স্প্যাম কিনা)।
  • মাল্টি-ক্লাস ক্লাসিফিকেশন: একাধিক শ্রেণি সম্পর্কিত সিদ্ধান্ত (যেমন, ইমেইল ক্যাটেগরি, বস্তু শনাক্তকরণ)।
  • বিনিয়োগ বিশ্লেষণ: একটি স্টক লাভজনক কিনা, এটি বৃদ্ধির সম্ভাবনা কতটুকু ইত্যাদি।

লজিস্টিক রিগ্রেশন মডেল ট্রেইনিং

লজিস্টিক রিগ্রেশন মডেলটি ট্রেইন করতে লগ-লস ফাংশন (Log-Loss Function) ব্যবহার করা হয়। এটি মডেলটির প্যারামিটারগুলিকে অপটিমাইজ করতে সাহায্য করে।

লগ-লস ফাংশন:

L(β)=1mi=1m[yilog(h(xi))+(1yi)log(1h(xi))]L(\beta) = - \frac{1}{m} \sum_{i=1}^{m} \left[y_i \log(h(x_i)) + (1 - y_i) \log(1 - h(x_i))\right]

যেখানে,

  • yiy_i হলো আসল আউটপুট,
  • h(xi)h(x_i) হলো সিগময়েড ফাংশন দ্বারা পূর্বাভাসিত আউটপুট।

প্যারামিটার অপটিমাইজেশন:

এই ফাংশনটি মডেলকে এমনভাবে প্যারামিটারগুলো (যেমন, β0,β1,\beta_0, \beta_1, \dots) আপডেট করতে সহায়ক, যাতে এটি সঠিক পূর্বাভাস দেয়।


স্কikit-learn দিয়ে লজিস্টিক রিগ্রেশন

Pythonscikit-learn লাইব্রেরি ব্যবহার করে লজিস্টিক রিগ্রেশন মডেল খুব সহজে তৈরি এবং প্রশিক্ষণ করা যায়। নিচে একটি উদাহরণ দেওয়া হল।

ইনস্টলেশন:

pip install scikit-learn

উদাহরণ কোড:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# উদাহরণ ডেটা তৈরি করা
data = {'Age': [22, 25, 47, 52, 46],
        'Salary': [20000, 25000, 55000, 65000, 50000],
        'Purchased': [0, 0, 1, 1, 1]}  # 0=No, 1=Yes
df = pd.DataFrame(data)

# ইনপুট এবং আউটপুট ফিচার পৃথক করা
X = df[['Age', 'Salary']]  # ইনপুট ফিচার
y = df['Purchased']  # আউটপুট ফিচার

# ডেটা ট্রেনিং এবং টেস্টিং সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# মডেল তৈরি এবং প্রশিক্ষণ
model = LogisticRegression()
model.fit(X_train, y_train)

# পূর্বাভাস করা
y_pred = model.predict(X_test)

# মডেল মূল্যায়ন
print("Accuracy:", accuracy_score(y_test, y_pred))

লজিস্টিক রিগ্রেশন এর সুবিধা ও অসুবিধা

সুবিধা:

  1. সহজ এবং দ্রুত: লজিস্টিক রিগ্রেশন মডেল খুবই সহজ এবং দ্রুত প্রশিক্ষণ হয়।
  2. অনুভূতি বোঝার ক্ষমতা: মডেলটি বাস্তবিকভাবে যে ডেটা দ্বারা শিখছে তা বোঝা যায় (উদাহরণ: ফিচারের গুরুত্ব)।
  3. পারফরম্যান্স: ভালো ফলাফল দেয় যদি ডেটা লিনিয়ার হতে থাকে।

অসুবিধা:

  1. লিনিয়ার সীমাবদ্ধতা: শুধুমাত্র লিনিয়ার সম্পর্কযুক্ত ডেটাতে ভাল কাজ করে, অ্যানোন-লিনিয়ার সম্পর্কের জন্য কাজ করে না।
  2. অল্প ডেটার সমস্যা: যদি ডেটা খুব কম থাকে, তবে মডেলটি ঠিকভাবে কাজ নাও করতে পারে।

সারাংশ

লজিস্টিক রিগ্রেশন একটি জনপ্রিয় এবং সহজ কৌশল যা মূলত ক্লাসিফিকেশন সমস্যার জন্য ব্যবহৃত হয়। এটি সিগময়েড ফাংশন ব্যবহার করে আউটপুট হিসাব করে এবং এই আউটপুটের ভিত্তিতে ০ অথবা ১ ক্লাস নির্ধারণ করে। এটি সহজ, দ্রুত এবং কার্যকর, তবে শুধুমাত্র লিনিয়ার সম্পর্কযুক্ত ডেটার জন্য উপযুক্ত।

Content added By

Logistic Regression কি এবং এর প্রয়োজনীয়তা

509

লজিস্টিক রিগ্রেশন (Logistic Regression) হলো একটি জনপ্রিয় সুপারভাইজড লার্নিং (Supervised Learning) অ্যালগরিদম, যা মূলত ক্লাসিফিকেশন সমস্যা সমাধানে ব্যবহৃত হয়। যদিও এটি "রিগ্রেশন" নামে পরিচিত, এটি মূলত শ্রেণীবিভাগের (classification) কাজ করে, যেমন দুটি শ্রেণির মধ্যে পার্থক্য নির্ধারণ করা (যেমন, স্প্যাম বা নন-স্প্যাম, রোগী বা সুস্থ)।

লজিস্টিক রিগ্রেশন একটি লিনিয়ার মডেল যা একটি নির্দিষ্ট আউটপুট শ্রেণী (যেমন, 0 বা 1) নির্ধারণ করতে একটি লজিস্টিক ফাংশন বা সিগময়েড ফাংশন ব্যবহার করে।

লজিস্টিক রিগ্রেশন মডেলের মূল ধারণা:

  1. লিনিয়ার রিগ্রেশন এর মতো, এটি ইনপুট ফিচারগুলোর (এনট্রি) ভিত্তিতে একটি লিনিয়ার সম্পর্ক তৈরি করে, তবে আউটপুট একটি নির্দিষ্ট সীমার মধ্যে (0 থেকে 1) থাকে। এই সীমা নির্ধারণ করতে সিগময়েড ফাংশন ব্যবহৃত হয়, যা একটি সিগময়েড (S-shaped) বক্ররেখা তৈরি করে।
  2. সিগময়েড ফাংশনটি ইনপুট মানের উপর ভিত্তি করে একটি সম্ভাব্যতা (probability) প্রদান করে, যা পরে একটি শ্রেণীতে (0 বা 1) রূপান্তরিত হয়।

সিগময়েড ফাংশনটি দেখতে এমন:

Sigmoid(z)=11+ez\text{Sigmoid}(z) = \frac{1}{1 + e^{-z}}

এখানে, zz হলো ইনপুটের লিনিয়ার সমন্বয়, এবং ফলস্বরূপ সিগময়েড ফাংশনটি 0 থেকে 1 এর মধ্যে একটি মান প্রদান করে।


Logistic Regression এর প্রয়োজনীয়তা

১. দ্বিতীয় শ্রেণীবিভাগ (Binary Classification) সমস্যার জন্য উপযোগী:

লজিস্টিক রিগ্রেশন সাধারণত দ্বিতীয় শ্রেণীবিভাগ সমস্যার জন্য ব্যবহৃত হয়, যেখানে আউটপুট ভেরিয়েবল দুটি শ্রেণি (যেমন, 0 বা 1, সত্য বা মিথ্যা) হতে পারে। উদাহরণস্বরূপ:

  • ইমেইল স্প্যাম ডিটেকশন (স্প্যাম বা নন-স্প্যাম)
  • রোগী সুস্থ বা অসুস্থ কিনা নির্ধারণ
  • ক্রেডিট কার্ড প্রতারণা শনাক্তকরণ

২. সহজ এবং তাড়াতাড়ি কাজ করা মডেল:

লজিস্টিক রিগ্রেশন একটি সহজ মডেল যা তুলনামূলকভাবে দ্রুত প্রশিক্ষিত এবং পূর্বাভাস তৈরি করতে সক্ষম। এর সরলতার কারণে এটি অনেক সমস্যার জন্য একটি ভালো বেসলাইন মডেল হিসেবে কাজ করতে পারে।

৩. প্রবণতা বিশ্লেষণ (Probabilistic Interpretation):

লজিস্টিক রিগ্রেশন আউটপুট হিসাবে সম্ভাবনা (probability) প্রদান করে, যা ক্লাস 1 (যেমন স্প্যাম) হওয়ার সম্ভাবনা নির্দেশ করে। এই সম্ভাবনাকে আরও ব্যবহারিক উদ্দেশ্যে যেমন রিস্ক বা বিকল্প সিদ্ধান্ত গ্রহণ এর জন্য ব্যবহৃত করা যেতে পারে।

৪. ডেটার সাদৃশ্য বজায় রাখা (Maintaining Linearity):

লজিস্টিক রিগ্রেশন লিনিয়ার মডেল হলেও, এটি সিগময়েড ফাংশন ব্যবহার করে মডেলটির আউটপুটকে সীমাবদ্ধ রাখে (0 থেকে 1)। এর মাধ্যমে লিনিয়ার সম্পর্ক থাকলেও, ফলস্বরূপ সিদ্ধান্ত দুটি শ্রেণীর মধ্যে থাকে এবং এটি কমপ্লেক্স শ্রেণীবিভাগ সমস্যাগুলোর জন্য কার্যকরী হতে পারে।

৫. এফিশিয়েন্ট এবং দ্রুত প্রশিক্ষণ:

এটি কম্পিউটেশনালভাবে কার্যকরী এবং ডেটার ওপর দ্রুত মডেল ট্রেনিং করতে সক্ষম। বিশেষ করে ছোট এবং মাঝারি আকারের ডেটাসেটগুলোর জন্য এটি একটি উপযুক্ত মডেল।

৬. মাল্টিক্লাস ক্লাসিফিকেশনেও ব্যবহার করা যেতে পারে:

যদিও লজিস্টিক রিগ্রেশন মূলত দ্বিতীয় শ্রেণী সমস্যা সমাধানে ব্যবহৃত হয়, তবে এটি মাল্টিক্লাস ক্লাসিফিকেশন সমস্যা সমাধানের জন্যও সম্প্রসারিত হতে পারে, যেমন ওন্যি-ভী বা একাধিক শ্রেণি (One-vs-Rest) পদ্ধতি ব্যবহার করে।


লজিস্টিক রিগ্রেশন এর কাজের উদাহরণ:

উদাহরণ: ইমেইল স্প্যাম ডিটেকশন

ধরা যাক, আমাদের কাছে ইমেইলের কিছু বৈশিষ্ট্য যেমন অন্তর্ভুক্ত শব্দ (keywords), অ্যাটাচমেন্ট থাকলে, ইমেইল দৈর্ঘ্য, প্রেরকের ঠিকানা ইত্যাদি রয়েছে এবং আমাদের কাজ হলো ইমেইলটি স্প্যাম না নন-স্প্যাম তা চিহ্নিত করা।

এই সমস্যাটির জন্য লজিস্টিক রিগ্রেশন ব্যবহার করলে:

  1. আমাদের ডেটাসেটের বৈশিষ্ট্যগুলো ইনপুট হিসেবে নেবো।
  2. একটি লিনিয়ার সম্পর্ক তৈরি হবে, যা এই বৈশিষ্ট্যগুলো থেকে সম্ভাবনা বের করবে।
  3. এই সম্ভাবনা একটি সিগময়েড ফাংশনের মাধ্যমে 0 এবং 1 এর মধ্যে রূপান্তরিত হবে।
  4. ফলস্বরূপ, যদি 0.5 এর বেশি হয়, তাহলে এটি স্প্যাম হতে পারে এবং 0.5 এর কম হলে নন-স্প্যাম।

লজিস্টিক রিগ্রেশন এর গণনা:

ধরা যাক, ডেটা ভেরিয়েবল X=[x1,x2,...,xn]X = [x_1, x_2, ..., x_n] এবং আউটপুট yy (স্প্যাম বা নন-স্প্যাম), তাহলে লজিস্টিক রিগ্রেশন মডেলটি নিম্নরূপ হবে:

P(y=1X)=11+e(w0+w1x1+w2x2+...+wnxn)P(y=1|X) = \frac{1}{1 + e^{-(w_0 + w_1x_1 + w_2x_2 + ... + w_nx_n)}}

এখানে, w0,w1,w2,...,wnw_0, w_1, w_2, ..., w_n হলো প্যারামিটার এবং ee হলো ন্যাচারাল লগারিদমের ভিত্তি।


সারাংশ

লজিস্টিক রিগ্রেশন একটি শক্তিশালী এবং সহজলভ্য মেশিন লার্নিং অ্যালগরিদম, যা ক্লাসিফিকেশন সমস্যাগুলোর জন্য ব্যবহৃত হয়, বিশেষত দ্বিতীয় শ্রেণী ক্লাসিফিকেশন (যেমন 0 এবং 1, স্প্যাম এবং নন-স্প্যাম) সমস্যার জন্য। এটি সিগময়েড ফাংশন ব্যবহার করে সম্ভাবনা নির্ধারণ করে এবং দ্রুত, কম্পিউটেশনালভাবে কার্যকরী মডেল প্রদান করে। এর সুবিধাগুলোর মধ্যে সহজতা, দ্রুত প্রশিক্ষণ, এবং সম্ভাবনা বিশ্লেষণের সুবিধা রয়েছে, যা এটিকে বিভিন্ন বাস্তব বিশ্ব সমস্যা সমাধানে জনপ্রিয় মডেল করে তোলে।

Content added By

Python দিয়ে Logistic Regression মডেল তৈরি

350

Logistic Regression একটি জনপ্রিয় Supervised Learning অ্যালগরিদম, যা Classification সমস্যার সমাধান করতে ব্যবহৃত হয়। এটি একটি লিনিয়ার মডেল হলেও আউটপুট হিসেবেও একটি সিগময়েড (sigmoid) ফাংশন ব্যবহার করে, যা প্রেডিকশনকে একটি সম্ভাবনা (probability) হিসেবে রূপান্তরিত করে এবং সেই অনুযায়ী ক্লাস (যেমন, 0 অথবা 1) প্রদান করে।

এখানে Python দিয়ে একটি Logistic Regression মডেল তৈরি করার উদাহরণ দেওয়া হলো।


১. ডেটাসেট লোড এবং প্রাথমিক প্রস্তুতি

আমরা Iris dataset ব্যবহার করব, যা একটি জনপ্রিয় ডেটাসেট, যেখানে বিভিন্ন ফুলের প্রকারভেদ ক্লাসিফিকেশন করা হয়। তবে, এখানে আমরা দুটি শ্রেণী (setosa এবং versicolor) নিয়ে কাজ করব, যেহেতু Logistic Regression মূলত বাইনারি ক্লাসিফিকেশন সমস্যার জন্য ব্যবহার হয়।

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
import numpy as np

# Iris dataset লোড করা
iris = load_iris()
X = iris.data
y = iris.target

# 0 এবং 1 শ্রেণীর ডেটা (setosa এবং versicolor) নেবো
X = X[y != 2]
y = y[y != 2]

# ডেটাসেটটিকে ট্রেনিং এবং টেস্টিং সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

২. Logistic Regression মডেল তৈরি এবং প্রশিক্ষণ

এখন আমরা LogisticRegression ক্লাস ব্যবহার করে মডেল তৈরি করব এবং প্রশিক্ষণ দেব।

# Logistic Regression মডেল তৈরি করা
log_reg = LogisticRegression()

# মডেলটিকে ট্রেনিং ডেটা দিয়ে প্রশিক্ষণ দেয়া
log_reg.fit(X_train, y_train)

৩. মডেল দিয়ে পূর্বাভাস (Prediction) করা

এখন, প্রশিক্ষিত মডেল ব্যবহার করে আমরা টেস্ট ডেটাতে পূর্বাভাস করতে পারব।

# টেস্ট ডেটাতে পূর্বাভাস করা
y_pred = log_reg.predict(X_test)

# ফলাফল দেখা
print("Predicted Labels:", y_pred)
print("Actual Labels:", y_test)

৪. মডেল মূল্যায়ন (Model Evaluation)

আমরা এখন মডেলটির কার্যকারিতা মূল্যায়ন করব। এর জন্য accuracy_score, confusion_matrix, এবং classification_report ব্যবহার করা হবে।

# মডেল accuracy চেক করা
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

# Confusion Matrix দেখানো
conf_matrix = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:\n", conf_matrix)

# Classification Report দেখানো
class_report = classification_report(y_test, y_pred)
print("Classification Report:\n", class_report)

৫. ফলাফল বিশ্লেষণ

এটি মডেলের পারফরম্যান্স সম্পর্কে বিস্তারিত ফলাফল সরবরাহ করবে। Confusion Matrix দেখাবে সঠিক এবং ভুল শ্রেণীকরণের সংখ্যা, এবং Classification Report পারফরম্যান্সের জন্য Precision, Recall, এবং F1-score দেখাবে।

উদাহরণ আউটপুট:

Accuracy: 1.0
Confusion Matrix:
 [[15  0]
 [ 0 15]]

Classification Report:
               precision    recall  f1-score   support

           0       1.00      1.00      1.00        15
           1       1.00      1.00      1.00        15

    accuracy                           1.00        30
   macro avg       1.00      1.00      1.00        30
weighted avg       1.00      1.00      1.00        30

এখানে accuracy 1.0, অর্থাৎ আমাদের মডেলটি 100% সঠিকভাবে পূর্বাভাস দিয়েছে।


সারাংশ

Logistic Regression একটি সোজা, তবে শক্তিশালী ক্লাসিফিকেশন অ্যালগরিদম যা আমাদেরকে বাইনারি ক্লাসিফিকেশন সমস্যা সমাধানে সাহায্য করে। আমরা এখানে LogisticRegression মডেলটি তৈরি করে সেটি প্রশিক্ষণ, পূর্বাভাস এবং মূল্যায়ন করেছি। এই পদ্ধতি মেশিন লার্নিং প্রকল্পে সাধারণত ব্যবহৃত হয় এবং সহজেই ক্লাসিফিকেশন সমস্যা সমাধানে ব্যবহৃত হতে পারে।

Content added By

Confusion Matrix এবং Accuracy

384

Confusion Matrix এবং Accuracy হল মেশিন লার্নিং এর মৌলিক পরিমাপ যেগুলি মডেলের কার্যকারিতা (performance) মূল্যায়নে ব্যবহৃত হয়, বিশেষত ক্লাসিফিকেশন মডেল এর ক্ষেত্রে।


Confusion Matrix

Confusion Matrix একটি টেবিল বা ম্যাট্রিক্স যা মডেলের ভবিষ্যদ্বাণী করা (predicted) এবং বাস্তব (actual) ফলাফলগুলির মধ্যে তুলনা প্রদর্শন করে। এটি ক্লাসিফিকেশন সমস্যার ক্ষেত্রে সাধারণত ২টি শ্রেণি (binary classification) অথবা একাধিক শ্রেণি (multi-class classification) হতে পারে। এটি চারটি প্রধান পরিমাপ থেকে তৈরি হয়:

  • True Positive (TP): যখন মডেল সঠিকভাবে একটি ইতিবাচক (positive) ক্লাস চিহ্নিত করে।
  • True Negative (TN): যখন মডেল সঠিকভাবে একটি নেতিবাচক (negative) ক্লাস চিহ্নিত করে।
  • False Positive (FP): যখন মডেল ভুলভাবে একটি নেতিবাচক ক্লাসকে ইতিবাচক হিসাবে চিহ্নিত করে (Type I Error)।
  • False Negative (FN): যখন মডেল ভুলভাবে একটি ইতিবাচক ক্লাসকে নেতিবাচক হিসাবে চিহ্নিত করে (Type II Error)।

Confusion Matrix এর একটি সাধারণ ২ শ্রেণির উদাহরণ (Binary Classification)

Predicted Positive (1)Predicted Negative (0)
Actual Positive (1)True Positive (TP)False Negative (FN)
Actual Negative (0)False Positive (FP)True Negative (TN)

Confusion Matrix এর পরিমাপ

Confusion Matrix থেকে বিভিন্ন মেট্রিক (performance metrics) বের করা যায়, যেগুলি মডেলের কার্যকারিতা মূল্যায়নে সহায়ক। কয়েকটি গুরুত্বপূর্ণ পরিমাপ:

  1. Accuracy:
    • এটি মডেলের সঠিকতার পরিমাপ, অর্থাৎ কতটি সঠিক ভবিষ্যদ্বাণী করা হয়েছে তা বের করার জন্য।
    • Accuracy এর ফর্মুলা: Accuracy=TP+TNTP+TN+FP+FN\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN} যেখানে:
      • TP: True Positive
      • TN: True Negative
      • FP: False Positive
      • FN: False Negative
  2. Precision:
    • এটি একটি ইতিবাচক শ্রেণির মধ্যে মডেল কতটা সঠিক তা পরিমাপ করে। এটি False Positive কমানোর জন্য গুরুত্বপূর্ণ।
    • Precision এর ফর্মুলা: Precision=TPTP+FP\text{Precision} = \frac{TP}{TP + FP}
  3. Recall (Sensitivity):
    • এটি একটি ইতিবাচক শ্রেণির মধ্যে মডেল কতটা সঠিকভাবে পূর্বাভাস করেছে, অর্থাৎ কতোটা ইতিবাচক ক্লাস সঠিকভাবে চিহ্নিত করা হয়েছে।
    • Recall এর ফর্মুলা: Recall=TPTP+FN\text{Recall} = \frac{TP}{TP + FN}
  4. F1-Score:
    • Precision এবং Recall এর একটি গড়। এটি একদিকে False Positives এবং অন্যদিকে False Negatives উভয়কেই সমন্বয় করে একটি সামগ্রিক ফলাফল প্রদান করে।
    • F1-Score এর ফর্মুলা: F1-Score=2×Precision×RecallPrecision+Recall\text{F1-Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}

Accuracy

Accuracy হলো ক্লাসিফিকেশন মডেলের সবচেয়ে সাধারণ এবং সহজে বুঝতে আসা পরিমাপ। এটি মডেলের সঠিকতার শতাংশ হিসেবে গণনা করা হয়, অর্থাৎ সঠিক পূর্বাভাস করা মোট পূর্বাভাসের মধ্যে কতটুকু।

Accuracy এর ফর্মুলা:

Accuracy=TP+TNTP+TN+FP+FN\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN}

এখানে:

  • TP (True Positive): সঠিকভাবে চিহ্নিত ইতিবাচক (positive) উদাহরণ।
  • TN (True Negative): সঠিকভাবে চিহ্নিত নেতিবাচক (negative) উদাহরণ।
  • FP (False Positive): ভুলভাবে ইতিবাচক (positive) চিহ্নিত করা উদাহরণ।
  • FN (False Negative): ভুলভাবে নেতিবাচক (negative) চিহ্নিত করা উদাহরণ।

Accuracy এর উদাহরণ:

ধরা যাক, একটি মডেল ১০০টি নমুনা নিয়ে পরীক্ষা করা হয়েছে, এবং এটি সঠিকভাবে ৮৫টি (True Positives + True Negatives) ভবিষ্যদ্বাণী করেছে, এবং ১৫টি ভুল ভবিষ্যদ্বাণী করেছে (False Positives + False Negatives)।

তাহলে, Accuracy হবে:

Accuracy=85100=0.85 বা 85%\text{Accuracy} = \frac{85}{100} = 0.85 \text{ বা } 85\%


Confusion Matrix, Accuracy এবং অন্যান্য মেট্রিকের গুরুত্ব

  • Accuracy সাধারণত সঠিকতা মাপার জন্য ব্যবহৃত হলেও, এটি সবসময় যথাযথ পরিমাপ নাও হতে পারে, বিশেষত যখন ডেটাসেটে শ্রেণীগুলির মধ্যে ভারসাম্য (imbalance) না থাকে। উদাহরণস্বরূপ, যদি একটি ডেটাসেটে ৯৫% নেতিবাচক (negative) উদাহরণ থাকে এবং ৫% ইতিবাচক (positive) উদাহরণ থাকে, তাহলে একটি মডেল যদি সবকিছু নেতিবাচক হিসেবেই চিহ্নিত করে, তাও Accuracy ৯৫% হতে পারে, তবে মডেলটি মোটেও কার্যকর হবে না।
  • Precision এবং Recall সাধারণত গুরুত্বপূর্ণ, বিশেষত যখন মডেলটি False Positives এবং False Negatives কমাতে লক্ষ্য রাখে। যেমন মেডিক্যাল ডায়াগনসিসে, False Negative (যেখানে একটি রোগ সনাক্ত করা হয়নি) খুবই ক্ষতিকর হতে পারে, তাই Recall এখানে গুরুত্বপূর্ণ।

সারাংশ

  • Confusion Matrix মডেলের পারফরম্যান্স বিশ্লেষণ করার জন্য একটি শক্তিশালী টুল। এটি বিভিন্ন পরিমাপ (Accuracy, Precision, Recall, F1-Score) প্রদান করে যা মডেলের কার্যকারিতা পর্যালোচনার জন্য ব্যবহৃত হয়।
  • Accuracy হল একটি সাধারণ পরিমাপ, কিন্তু ভারসাম্যহীন ডেটাসেটে এটি বিভ্রান্তিকর হতে পারে। তাই Precision, Recall এবং F1-Score এর মতো অন্যান্য পরিমাপগুলিও বিবেচনা করা গুরুত্বপূর্ণ।
Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...